/*
 * @Descripttion:
 * @version:
 * @Author: cpy
 * @Date: 2023-10-11 16:10:00
 */
#ifndef __GPIO_H
#define __GPIO_H
#include "sys.h"

// BAT_5V
// BAT_EN PE12
#define BAT_EN_CLK RCC_AHB1Periph_GPIOE
#define BAT_EN_GPIO GPIOE
#define BAT_EN_PIN GPIO_Pin_12
#define SET_BAT_EN PEout(12)

// CAN1
// COMM_EN PD2
#define COMM_EN_CLK RCC_AHB1Periph_GPIOD
#define COMM_EN_GPIO GPIOD
#define COMM_EN_PIN GPIO_Pin_2
#define SET_COMM_EN PDout(2)

// Relay_check
#define SW_CLK RCC_AHB1Periph_GPIOD
#define SW1_GPIO GPIOD
#define SW1_PIN GPIO_Pin_1
#define SW2_GPIO GPIOD
#define SW2_PIN GPIO_Pin_0

// PD6-RinSw1  PD7-RinSw2  PD3-RinSw3  PD4-RinSw4
#define RINSW_CLK RCC_AHB1Periph_GPIOD
#define RINSW_GPIO GPIOD
#define RINSW1_PIN GPIO_Pin_6
#define RINSW2_PIN GPIO_Pin_7
#define RINSW3_PIN GPIO_Pin_3
#define RINSW4_PIN GPIO_Pin_4
#define RINSW1_SET PDout(6)
#define RINSW2_SET PDout(7)
#define RINSW3_SET PDout(3)
#define RINSW4_SET PDout(4)

// UART3_485_EN
#define UART3_485_EN PEout(15)

void Init_Gpio_Led1(void);
void Led1_Set_Gpio(u8 Value);
void Led1_Set_Not(void);
u8 Led_Run_Cpu(void);
void Init_Gpio_IOT12V_En(void);
void IOT12V_En_Set_Gpio(u8 Value);
void Init_Gpio_DC12V_En(void);
void DC12V_En_Set_Gpio(u8 Value);
void Init_Gpio_Pwr_KeepOn(void);
void Pwr_KeepOn_Set_Gpio(u8 Value);
void Init_Gpio_ISOCAN_En(void);
void ISOCAN_En_Set_Gpio(u8 Value);
void Init_Gpio_BAT_En(void);
void BAT_En_Set_Gpio(u8 Value);
void Init_Gpio_COMM_En(void);
void COMM_En_Set_Gpio(u8 Value);
void Init_Gpio_LED1(void);
void LED1_Set_Gpio(u8 Value);
void LED1_Set_Not(void);
void Init_Gpio_LED2(void);
void LED2_Set_Gpio(u8 Value);
void LED2_Set_Not(void);
void Init_Gpio_LED3(void);
void LED3_Set_Gpio(u8 Value);
void LED3_Set_Not(void);
void Init_Gpio_LED4(void);
void LED4_Set_Gpio(u8 Value);
void LED4_Set_Not(void);
void Init_Gpio_Pwr_Check(void);
u8 Pwr_Check_Read_Gpio(void);
void Init_Gpio_REC2_485EN(void);
void REC2_485EN_Set_Gpio(u8 Value);
void Init_Gpio_REC3_485EN(void);
void REC3_485EN_Set_Gpio(u8 Value);
void Init_Gpio_Relay1_DSG(void);
void Relay1_DSG_Set_Gpio(u8 Value);
void Init_Gpio_Relay2_CHG(void);
void Relay2_CHG_Set_Gpio(u8 Value);
void Init_Gpio_Relay3_PRE(void);
void Relay3_PRE_Set_Gpio(u8 Value);
void Init_Gpio_Relay4_Heat(void);
void Relay4_Heat_Set_Gpio(u8 Value);
void Init_Gpio_Relay5_Fun(void);
void Relay5_Fun_Set_Gpio(u8 Value);
void Init_Gpio_Relay6_Rev(void);
void Relay6_Rev_Set_Gpio(u8 Value);
void Init_Gpio_Key_State(void);
u8 Key_State_Read_Gpio(void);
void Init_Gpio_IO_CC(void);
u8 IO_CC_Read_Gpio(void);
void Init_Gpio_IO_CC2(void);
u8 IO_CC2_Read_Gpio(void);
void Init_Gpio_IO_CP(void);
u8 IO_CP_Read_Gpio(void);
void Init_Gpio_IO_DO1(void);
void IO_DO1_Set_Gpio(u8 Value);
void Init_Gpio_ExtSw1_Check(void);
u8 ExtSw1_Check_Read_Gpio(void);
void Init_Gpio_ExtSw2_Check(void);
u8 ExtSw2_Check_Read_Gpio(void);
void Init_Gpio_IIC1(void);
void EEP_WC_Set_Gpio(u8 Value);
void Init_Gpio_CAN1(void);
void Init_Gpio_CAN2(void);
void Init_Gpio_UART1(void);
void Init_Gpio_UART2(void);
void Init_Gpio_UART3(void);
void Init_Gpio_UART6(void);
void Init_Gpio_IIC1(void);
void IIC_Sda_Set_OutMode(void);
void IIC_Sda_Set_InMode(void);
void IIC_Sda_Set_Gpio(u8 Value);
u8 IIC_Sda_Read_Gpio(void);
void EEP_WC_Set_Gpio(u8 Value);
void IIC_Scl_Set_Gpio(u8 Value);
void Init_Gpio_SPI2(void);
void SPI2_PCS1_BAT_Set_Gpio(u8 Value);
void SPI2_PCS2_LINK_Set_Gpio(u8 Value);
void Init_Gpio_SPI3(void);
void SPI3_PCS1_6820_Set_Gpio(u8 Value);
void Init_Gpio_ADC(void);
void Init_Gpio_RinSw(void);
void RinSw1_Set_Gpio(u8 Value);
void RinSw2_Set_Gpio(u8 Value);
void RinSw3_Set_Gpio(u8 Value);
void RinSw4_Set_Gpio(u8 Value);
#endif
